home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / AbstractWriter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.0 KB  |  176 lines

  1. package javax.swing.text;
  2.  
  3. import java.io.IOException;
  4. import java.io.Writer;
  5. import java.util.Enumeration;
  6.  
  7. public abstract class AbstractWriter {
  8.    // $FF: renamed from: it javax.swing.text.ElementIterator
  9.    private ElementIterator field_0;
  10.    private Writer out;
  11.    private int indentLevel;
  12.    private int indentSpace;
  13.    private Document doc;
  14.    private int maxLineLength;
  15.    private int currLength;
  16.    private int startOffset;
  17.    private int endOffset;
  18.    private int offsetIndent;
  19.    protected static final char NEWLINE = '\n';
  20.  
  21.    protected AbstractWriter(Writer var1, Document var2) {
  22.       this(var1, (Document)var2, 0, var2.getLength());
  23.    }
  24.  
  25.    protected AbstractWriter(Writer var1, Document var2, int var3, int var4) {
  26.       this.indentLevel = 0;
  27.       this.indentSpace = 2;
  28.       this.doc = null;
  29.       this.maxLineLength = 100;
  30.       this.currLength = 0;
  31.       this.startOffset = 0;
  32.       this.endOffset = 0;
  33.       this.offsetIndent = 0;
  34.       this.doc = var2;
  35.       this.field_0 = new ElementIterator(var2.getDefaultRootElement());
  36.       this.out = var1;
  37.       this.startOffset = var3;
  38.       this.endOffset = var3 + var4;
  39.    }
  40.  
  41.    protected AbstractWriter(Writer var1, Element var2) {
  42.       this(var1, (Element)var2, 0, var2.getEndOffset());
  43.    }
  44.  
  45.    protected AbstractWriter(Writer var1, Element var2, int var3, int var4) {
  46.       this.indentLevel = 0;
  47.       this.indentSpace = 2;
  48.       this.doc = null;
  49.       this.maxLineLength = 100;
  50.       this.currLength = 0;
  51.       this.startOffset = 0;
  52.       this.endOffset = 0;
  53.       this.offsetIndent = 0;
  54.       this.doc = var2.getDocument();
  55.       this.field_0 = new ElementIterator(var2);
  56.       this.out = var1;
  57.       this.startOffset = var3;
  58.       this.endOffset = var3 + var4;
  59.    }
  60.  
  61.    protected void decrIndent() {
  62.       if (this.offsetIndent > 0) {
  63.          --this.offsetIndent;
  64.       } else {
  65.          --this.indentLevel;
  66.       }
  67.  
  68.    }
  69.  
  70.    protected Document getDocument() {
  71.       return this.doc;
  72.    }
  73.  
  74.    protected ElementIterator getElementIterator() {
  75.       return this.field_0;
  76.    }
  77.  
  78.    protected String getText(Element var1) throws BadLocationException {
  79.       return this.doc.getText(var1.getStartOffset(), var1.getEndOffset() - var1.getStartOffset());
  80.    }
  81.  
  82.    protected boolean inRange(Element var1) {
  83.       return var1.getStartOffset() >= this.startOffset && var1.getStartOffset() < this.endOffset || this.startOffset >= var1.getStartOffset() && this.startOffset < var1.getEndOffset();
  84.    }
  85.  
  86.    protected void incrIndent() {
  87.       if (this.offsetIndent > 0) {
  88.          ++this.offsetIndent;
  89.       } else if (++this.indentLevel * this.indentSpace >= this.maxLineLength) {
  90.          ++this.offsetIndent;
  91.          --this.indentLevel;
  92.       }
  93.  
  94.    }
  95.  
  96.    protected void indent() throws IOException {
  97.       int var1 = this.indentLevel * this.indentSpace;
  98.  
  99.       for(int var2 = 0; var2 < var1; ++var2) {
  100.          this.write(' ');
  101.       }
  102.  
  103.    }
  104.  
  105.    protected void setIndentSpace(int var1) {
  106.       this.indentSpace = var1;
  107.    }
  108.  
  109.    protected void setLineLength(int var1) {
  110.       this.maxLineLength = var1;
  111.    }
  112.  
  113.    protected void text(Element var1) throws BadLocationException, IOException {
  114.       String var2 = this.getText(var1);
  115.       if (var2.length() > 0) {
  116.          this.write(var2);
  117.       }
  118.  
  119.    }
  120.  
  121.    protected abstract void write() throws IOException, BadLocationException;
  122.  
  123.    protected void write(char var1) throws IOException {
  124.       this.out.write(var1);
  125.       if (var1 == '\n') {
  126.          this.currLength = 0;
  127.       } else {
  128.          ++this.currLength;
  129.          if (this.currLength == this.maxLineLength) {
  130.             this.out.write(10);
  131.             this.currLength = 0;
  132.             this.indent();
  133.          }
  134.       }
  135.  
  136.    }
  137.  
  138.    protected void write(String var1) throws IOException {
  139.       int var2 = this.indentLevel * this.indentSpace;
  140.       int var3 = var1.indexOf(10);
  141.       if (this.currLength + var1.length() <= this.maxLineLength) {
  142.          this.out.write(var1);
  143.          this.currLength += var1.length();
  144.          if (var3 >= 0) {
  145.             this.currLength -= var3 - 1;
  146.          }
  147.       } else if (var2 + var1.length() <= this.maxLineLength) {
  148.          this.out.write(10);
  149.          this.currLength = 0;
  150.          this.indent();
  151.          this.out.write(var1);
  152.          this.currLength = var2 + var1.length();
  153.          if (var3 >= 0) {
  154.             this.currLength -= var3 - 1;
  155.          }
  156.       } else {
  157.          int var4 = this.maxLineLength - var2;
  158.          String var5 = var1.substring(0, var4);
  159.          this.write(var5);
  160.          var5 = var1.substring(var4, var1.length());
  161.          this.write(var5);
  162.       }
  163.  
  164.    }
  165.  
  166.    protected void writeAttributes(AttributeSet var1) throws IOException {
  167.       Enumeration var2 = var1.getAttributeNames();
  168.  
  169.       while(var2.hasMoreElements()) {
  170.          Object var3 = var2.nextElement();
  171.          this.write(" " + var3 + "=" + var1.getAttribute(var3));
  172.       }
  173.  
  174.    }
  175. }
  176.